import axios from "axios";

// 基本配置
const instance = axios.create({
  baseURL: "http://localhost:3000/", // 根据实际情况修改API地址
  timeout: 5000, // 设置超时时间，单位为ms
});

// 请求拦截器
instance.interceptors.request.use((config) => {
  return config;
});
// 业务状态码
const errorCode = {
  10: (response) => {
    const { message, code } = response.data;
    // 如果有自定义消息就用自定义消息
    // 没有就用默认的
    console.log(message || "用户不存在");
  },
};

// http状态码
const httpErrorCode = {
  404: () => {
    console.log("接口不存在!");
  },
  500: () => {
    console.log("服务器错误");
  },
};
// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 如果接收到的是一个文件格式直接return
    if (response.data instanceof Blob) return response.data;

    const { code } = response.data;
    if (code === 0) {
      return response.data;
    }

    errorCode[code]?.(response);
    return Promise.reject(response);
  },
  (error) => {
    const { status } = error;
    httpErrorCode[status]?.(error);
    return Promise.reject(error);
  }
);

export default instance;
